#ifndef H_INTERPOLATIONHELPER
#define H_INTERPOLATIONHELPER

#include "actor.h"
#include "particleSystem.h"

//TODO: make subclasses of interpolators for different types - Matrix, Vector, etc...

class Renderer;

class InterpolationHelper{
    public:

    Renderer * renderer;
    Actor * moveActor;

    bool bInterpolateVectors;
    bool bInterpolateMatrix;
    bool bInterpolateProperty;
    bool bRelative;
    bool bAdditive;

    vector <key*>    keyFrames;

    Vector3f    baseLocation;
    Vector3f    baseRotation;
    Matrix4f    baseMatrix;

    std::map<std::string, Matrix4f> baseBoneMatrices;

    int currentKey;

    double currentTime;
    double startTime;

    bool bFinished;

    InterpolationHelper();

    virtual ~InterpolationHelper();

    virtual void interpolate();
    virtual void interpolateVectors();
    virtual void interpolateMatrix();

};
#endif
